Java进阶-finalize()

  1. finalize 方法每个 Java 对象都有
  2. 不需要程序员去调用,由系统自动调用
  3. Java 对象如果没有更多的引用指向它,则该对象成为垃圾数据,等待垃圾回收器的回收,垃圾回收器在回收这个对象之前会自动调用该对象的 finalize 方法
  4. finalize 方法:该对象马上就要被回收了,例如:需要释放资源,则可以在该方法中释放
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Test03 {
public static void main(String[] args) {
Person1 p1 = new Person1();

p1 = null; // 没有引用再指向它,等待回收

// 程序员只能“建议”垃圾回收器回收垃圾
System.gc(); // test0220.Person1@3a18f192马上就要被回收了
}
}

class Person1 {
// 重写 finalize 方法
public void finalize() throws Throwable {
System.out.println(this + "马上就要被回收了");
}
}